// 语法： 变量声明：类型 = 值

import { useState } from "react";

// 1. 数字
let num: number = 1;

// 2. 布尔
let bool: boolean = true;

// 3. 字符串
let str: string = "123";

// 4. 数组
let arr: [] = [];
let arr1: number[] = [1, 2, 3, 5];
let arr2: boolean[] = [true, false];

// 5. 元组： 是一个长度为2的数组
let t1: [number, boolean] = [1, true];
// const [state, setState] = useState()
// 6. 枚举
enum Color {
  Red,
  Yellow,
  Blue,
}

console.log(Color.Red); // 0
console.log(Color[0]); // Red

// 7. Any: 任意类型, 不建议使用

let a: any = 123;
a = true;
a = "1231";
a = [1, 2, 3, 4];

// 8. Void: 函数没有返回值的默认类型

function fn() {}
const aaa = fn();

// 9. Null 和 Undefined: 值和类型是一样的， 是其他类型的子类型(也就是说， 可以赋值给其他类型, ), 【需要 strictNullChecks： false】
let n: null = null;
let u: undefined = undefined;


// 10. Never
function fnn(): never {
  throw new Error('1231231')
  // while(true) {

  // }
}

// 11.Object
let obj: Object = { name: '章三' }
let arr222: Object = [1,2,3,4]
let fn123: Object = () => {};
let num123: Object = new Number(1);
let date: Object = new Date()


export {};
